<%@ page import="com.luzhikun.EL_JSTL.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.luzhikun.EL_JSTL.User" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: 小柒的Java
  Date: 2021/4/27
  Time: 23:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--
      <c:set/>
      作用：set标签 往域中添加数据
      域对象.setAttribute("String",Object)
      1.保存到那个域
          scope设置那个域
              page就是       pageContext(默认值)
              request       request域
              session       Session域
              application   ServletContext域
      2.var属性设置key的值
      3.value属性设置value的值
--%>
保存之前：${requestScope.abc}<br>
<c:set scope="request" var="abc" value="abcValue"/>
保存之后：${requestScope.abc}<br>

<%--
      <c:if>
      if标签用来做if判断
      test属性表示判断的条件(使用EL表达式)
--%>

<%--<c:if test="${12!=12}">
  <h1>12等于12</h1>
</c:if>--%>
<c:if test="${12==12}">
    <h1>12等于12</h1>
</c:if>

<%--
 <c:choose><c:when><c:otherwise>标签

    作用：多路判断，跟switch。。。case。。。default非常接近
            otherwise表示剩下的 作用和 else相同

           注意点：
                 1.标签中间不能写HTML注释，否则会报错
                   只能写jsp注释

                 2.一个判断标签中不能再加判断，如果要加必须加<c:choose>

--%>
<%
    request.setAttribute("height", 190);
%>

<c:choose>
    <c:when test="${requestScope.height>200}">--%>
        <h1>高个</h1>
    </c:when>
    <c:when test="${requestScope.height>190}">--%>
        <h1>巨人</h1>--%>
    </c:when>
    <c:when test="${requestScope.height>180}">
        <h1>勉强</h1>
    </c:when>
    <c:otherwise>
        <%--<c:choose>
            <c:when test="${requestScope.height>170}">
                <h1>将就</h1>
            </c:when>
            <c:otherwise>
                <h1>可以去死了</h1>
            </c:otherwise>>
        </c:choose>--%>
    </c:otherwise>
</c:choose>
<hr>
使用jstl标签
第一步：加入jstl标签依赖
第二步：添加taglib标签指令，添加前缀，和标签库的网络位置
<hr>
jstl标签分为5个库：常用的是前两个core，i18n,functions,xml,sql<br>
1.core<br>
c:set标签可以设置变量，也可以设置常量<br>
c:set标签中的属性有：<br>
value：设置的变量的值<br>
var：设置的变量<br>
scope：可以设置当前的变量放入哪个域中<br>
property:设置对象的属性
target：设置对象是
<c:set value="xiaoqi" var="a1">
</c:set>
${a1}<br>
<c:set value="拜拜" var="user" scope="request"></c:set>
${requestScope.user}
<br>
<hr>
c:if标签判断是否满足当前条件，如果满足就执行标签中的内容<br>
c：if必须要有一个属性就是test<br>
<br>
<c:if test="${5>3}">
    ${requestScope.user}
</c:if>
<br>
<c:if test="${20>10}">
    ${requestScope.user}
</c:if>
<br>
<%
    List<User> list =new ArrayList<>();
    User user = new User("小柒");
    User user1 = new User("小白");
    User user2 = new User("小三");
    list.add(user);
    list.add(user1);
    list.add(user2);
    request.setAttribute("list",list);
%>
foreach标签中
item属性：代表的是要遍历的对象
var属性:代表的是每次遍历的要输出
<c:forEach items="${list}" var="l" >
    <c:if test="${5>3}">
        ${l}
    </c:if>
</c:forEach>

</body>
</html>